package com.health.appoint.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.health.appoint.model.appoint.AddAppointRequest;
import com.health.appoint.model.appoint.GetAppointRequest;
import com.health.appoint.model.appoint.GetMyAppointRequest;
import com.health.appoint.model.appoint.TakeAppointRequest;
import com.health.appoint.model.entity.Appoint;
import com.health.appoint.model.vo.AppointVO;

/**
* @author zhexueqi
* @description 针对表【appoint(预约挂号表)】的数据库操作Service
* @createDate 2024-08-21 22:03:23
*/
public interface AppointService extends IService<Appoint> {

    /**
     * 预约挂号
     * @param appointRequest
     * @return
     * @throws Exception
     */
    Boolean addAppoint(AddAppointRequest appointRequest) throws Exception;

    /**
     * 取号
     * @param appointRequest
     * @return
     * @throws Exception
     */
    Boolean takeAppoint(TakeAppointRequest appointRequest) throws Exception;

    /**
     * 获取挂号信息
     * @param getAppointRequest
     * @return
     * @throws Exception
     */
    AppointVO getAppoint(GetAppointRequest getAppointRequest) throws Exception;

    /**
     * 获取自己的挂号信息
     *
     * @param getMyAppointReque@return
     */
    Page<AppointVO> getMyAppoint(GetMyAppointRequest getMyAppointRequest);
}
